20. 实现
实现:截断策略迭代
在上个部分,你学习了截断策略迭代。(迭代性)策略评估会根据需要应用很多次贝尔曼更新步骤,以实现收敛,而截断策略迭代仅对整个状态空间执行固定次数的评估。
你可以在下方找到伪代码。

我们可以将这个修订后的策略评估算法应用到类似于策略评估的算法中,称之为截断策略迭代。
你可以在下方找到伪代码。

你可能还注意到,截断策略迭代的停止条件与策略迭代的不同。在策略迭代中,当策略在一次策略改进步骤之后没有变化时,我们将终止循环。在截断策略迭代中,仅当值函数估值收敛时,我们才停止循环。
强烈建议你尝试两种停止条件,以便熟练掌握这些知识。但是,我们发现如果超参数 max_iterations
设得太小,则无法检查策略是否更改了。(为此,思考下以下情形:假设 max_iterations
设为很小的值。如果算法完全没有收敛于最优值函数 v_ 或最优策略 \pi_,可以想象,对值函数估值 V 的更新可能会太小,导致相应的策略没有任何更新。)
请在下个部分完成 Dynamic_Programming.ipynb
的第 5 部分:截断策略迭代。请记得保存内容!
你可以查看 Dynamic_Programming_Solution.ipynb
的相应部分,检查你的答案是否正确。